package org.csi.controle.upload.listener;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

import org.csi.controle.core.entidade.Permissao;
import org.csi.controle.core.util.Codigo;
import org.csi.controle.core.util.RetornoServico;
import org.csi.controle.upload.dados.Dados;

import android.content.Context;
import android.content.Intent;

import com.example.grafstock_upload.AutenticaActivity;
import com.example.grafstock_upload.MainActivity;
import com.example.grafstock_upload.ServicoAndroid;

public class RetornoLogin implements TratarRetornoServico<String> {

	private AutenticaActivity autenticaActivity;
	
	public RetornoLogin(AutenticaActivity autenticaActivity) {
		this.autenticaActivity = autenticaActivity;
	}
	
	@Override
	public void onRetorno(RetornoServico<String> retorno) {
		if(retorno.getCodigo().equals(Codigo.SUCESSO)) {
			try {
				Dados.token = retorno.getData();
				FileOutputStream fos = autenticaActivity.openFileOutput("token_upload_controle", Context.MODE_PRIVATE);
				fos.write(Dados.token.getBytes());
				fos.flush();
				fos.close();
				autenticaActivity.getDialog().dismiss();
				autenticaActivity.startActivity(new Intent(autenticaActivity, MainActivity.class));
				ServicoAndroid<List<Permissao>> sa = new ServicoAndroid<List<Permissao>>(new RetornoPermissoes(autenticaActivity));
				String[] params = new String[] {ServicoAndroid.TIPO_OBTER_PERMISSOES, Dados.token};
				sa.execute(params);
			} catch (IOException e) {
				e.printStackTrace();
			}
		} else {
			autenticaActivity.getDialog().dismiss();
			autenticaActivity.getToast().setText(retorno.getMensagem());
			autenticaActivity.getToast().show();
		}
	}

	@Override
	public void onFinish() {
		
	}

	@Override
	public Context getContext() {
		return autenticaActivity;
	}

}